home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / win31 / macsyma.arj / MACSDEMO.EXE / SPECFUN.OUT < prev    next >
Text File  |  1993-09-14  |  31KB  |  494 lines

  1.  
  2. (c1) /*         DEMONSTRATION OF SPECIAL FUNCTION PACKAGE `SPECFUN'
  3.  
  4.               TWO METHODS FOR COMPUTING SPECIAL FUNCTIONS
  5.  
  6.     Many of the special functions computed by MACSYMA can be computed in two
  7.     ways, using commands with two different syntaxes:
  8.  
  9. SPECFUNCTION(N,X)   The argument syntax tells MACSYMA to compute the
  10.                     function from an explicit formula. Nothing is saved
  11.                     to assist with future evaluations. This method is
  12.                     faster for isolated single evaluations.  
  13.  
  14. SPECFUNCTION[N](X)  The subscript syntax tells MACSYMA to compute the
  15.                     function from a recurrence relation, and store for reuse
  16.             some intermediate results. When several function
  17.             evaluations    are made, this is much more efficient.
  18.  
  19.     We will demonstrate by turning on the switch SHOWTIME
  20. */
  21. (remarray(legendre_p,alegendre_p,%alegendre_p,legendre_q,sharmonic_y,
  22.           sbessel_j,sneumann_n,shankel_h1,gegenbauer_c,%gegenbauer_c,
  23.           hermite_h,shankel_h2,laguerre_l,alaguerre_l,%alaguerre_l,
  24.           chebyshev_t,chebyshev_u,jacobi_p,%jacobi_p),
  25.  if get('specfun,'version)=false then load("specfun"), showtime:true)$
  26. C:\MACSD2B\share\specfun.fas being loaded.
  27. C:\MACSD2B\share\specfun2.fas being loaded.
  28. Time= 4010 msecs
  29.  
  30. (c2) legendre_p(10,x);
  31. Time= 490 msecs
  32. |$label(0,15,Times New Roman,$(d2$))$q(46189$in( )$sup(x,10)$in( - )109395$in( )$sup(x,8)$in( + )90090$in( )$sup(x,6)$in( - )30030$in( )$sup(x,4)$in( + )3465$in( )$sup(x,2)$in( - )63,256)
  33.  
  34. (c3) legendre_p[10](x);
  35. Time= 390 msecs
  36. |$label(0,15,Times New Roman,$(d3$))$q(46189$in( )$sup(x,10)$in( - )109395$in( )$sup(x,8)$in( + )90090$in( )$sup(x,6)$in( - )30030$in( )$sup(x,4)$in( + )3465$in( )$sup(x,2)$in( - )63,256)
  37.  
  38. (c4) /* When we repeat these commands, the times are very different: */
  39. legendre_p(10,x);
  40. Time= 59 msecs
  41. |$label(0,15,Times New Roman,$(d4$))$q(46189$in( )$sup(x,10)$in( - )109395$in( )$sup(x,8)$in( + )90090$in( )$sup(x,6)$in( - )30030$in( )$sup(x,4)$in( + )3465$in( )$sup(x,2)$in( - )63,256)
  42.  
  43. (c5) legendre_p[10](x);
  44. Time= 0 msecs
  45. |$label(0,15,Times New Roman,$(d5$))$q(46189$in( )$sup(x,10)$in( - )109395$in( )$sup(x,8)$in( + )90090$in( )$sup(x,6)$in( - )30030$in( )$sup(x,4)$in( + )3465$in( )$sup(x,2)$in( - )63,256)
  46.  
  47. (c6) /* Time savings from multiple evaluations also occur
  48.      for numerical evaluations */
  49. legendre_p(10,2);
  50. Time= 59 msecs
  51. |$label(0,15,Times New Roman,$(d6$))$q(24591493,256)
  52.  
  53. (c7) legendre_p[10](2);
  54. Time= 49 msecs
  55. |$label(0,15,Times New Roman,$(d7$))$q(24591493,256)
  56.  
  57. (c8) /* The command with subscript syntax has also stored
  58.      the lower order polynomials: */
  59. legendre_p(8,x);
  60. Time= 0 msecs
  61. |$label(0,15,Times New Roman,$(d8$))$q(6435$in( )$sup(x,8)$in( - )12012$in( )$sup(x,6)$in( + )6930$in( )$sup(x,4)$in( - )1260$in( )$sup(x,2)$in( + )35,128)
  62.  
  63. (c9) legendre_p[8](x);
  64. Time= 0 msecs
  65. |$label(0,15,Times New Roman,$(d9$))$q(6435$in( )$sup(x,8)$in( - )12012$in( )$sup(x,6)$in( + )6930$in( )$sup(x,4)$in( - )1260$in( )$sup(x,2)$in( + )35,128)
  66.  
  67. (c10) /* The command with subscript syntax recurses back to the
  68.       highest order polynomial previously called, which
  69.       saves time on subsequent evaluation of higher degree
  70.       polynomials.
  71. */
  72. legendre_p(11,x);
  73. Time= 59 msecs
  74. |$label(0,15,Times New Roman,$(d10$))$q(88179$in( )$sup(x,11)$in( - )230945$in( )$sup(x,9)$in( + )218790$in( )$sup(x,7)$in( - )90090$in( )$sup(x,5)$in( + )15015$in( )$sup(x,3)$in( - )693$in( )x,256)
  75.  
  76. (c11) legendre_p[11](x);
  77. Time= 49 msecs
  78. |$label(0,15,Times New Roman,$(d11$))$q(88179$in( )$sup(x,11)$in( - )230945$in( )$sup(x,9)$in( + )218790$in( )$sup(x,7)$in( - )90090$in( )$sup(x,5)$in( + )15015$in( )$sup(x,3)$in( - )693$in( )x,256)
  79.  
  80. (c12) /* MACSYMA can evaluate some special values of functions.
  81.       Answer "Y;" to the following question */
  82. legendre_p(n,-1);
  83. |$label(-1,15,Times New Roman,)Is  $in()n$in()  $in()an integer$in()?  $(Answer e.g. yes; no; unknown; or help; .$)
  84. Y;
  85.  
  86. Time= 9609 msecs
  87. |$label(0,15,Times New Roman,$(d12$))$sup($open($()$in( - )1$close($)),n)
  88.  
  89. (c13) /* Note that the command with subscript syntax does not know
  90.       how to reduce this value */
  91. legendre_p[n](-1);
  92. Time= 219 msecs
  93. |$label(0,15,Times New Roman,$(d13$))$sub(legendre_p,n)$paren($in( - )1)
  94.  
  95. (c14) /* Answer "Y;" to the following question */
  96. legendre_p(n,0);
  97. |$label(-1,15,Times New Roman,)Is  $in()n$in()  $in()an integer$in()?  $(Answer e.g. yes; no; unknown; or help; .$)
  98. Y;
  99.  
  100. Time= 3899 msecs
  101. |$label(0,15,Times New Roman,$(d14$))$q($sup($paren($in( - )1,$(,$)),n$in(/)2)$in( )$paren($sup($paren($in( - )1,$(,$)),n)$in( + )1,$(,$))$in( )$paren($over(n,$q(n,2),Y)),2$in( )$sup(4,n$in(/)2))
  102.  
  103. (c15) legendre_p[n](0);
  104. Time= 0 msecs
  105. |$label(0,15,Times New Roman,$(d15$))$sub(legendre_p,n)$paren(0)
  106.  
  107. (c16) showtime:false$
  108.  
  109. (c17) /* If one wishes to rename a special function:
  110.    for example %p for Legendre_P */
  111. %p(n,x):=subst('%p,nounify('legendre_p),legendre_p(n,x))$
  112.  
  113. (c18) %p(5,x) - legendre_p(5,x);
  114. |$label(0,15,Times New Roman,$(d18$))0
  115.  
  116. (c19) /* *********************************************
  117.  
  118.      Legendre Polynomials,
  119.      Associated Legendre Polynomials,
  120.      Gegenbauer Polynomials
  121. */
  122. for n from 0 thru 3 do
  123.     ldisplay(legendre_p(n,x),legendre_p[n](x))$
  124. |$label(0,15,Times New Roman,$(e19$))legendre_p$paren(0$ina($, )$hinge()x)$hinge()$in( = )1
  125.  
  126. |$label(0,15,Times New Roman,$(e20$))$sub(legendre_p,0)$paren(x)$hinge()$in( = )1
  127.  
  128. |$label(0,15,Times New Roman,$(e21$))legendre_p$paren(1$ina($, )$hinge()x)$hinge()$in( = )x
  129.  
  130. |$label(0,15,Times New Roman,$(e22$))$sub(legendre_p,1)$paren(x)$hinge()$in( = )x
  131.  
  132. |$label(0,15,Times New Roman,$(e23$))legendre_p$paren(2$ina($, )$hinge()x)$hinge()$in( = )$q(3$in( )$sup(x,2)$in( - )1,2)
  133.  
  134. |$label(0,15,Times New Roman,$(e24$))$sub(legendre_p,2)$paren(x)$hinge()$in( = )$q(3$in( )$sup(x,2)$in( - )1,2)
  135.  
  136. |$label(0,15,Times New Roman,$(e25$))legendre_p$paren(3$ina($, )$hinge()x)$hinge()$in( = )$q(5$in( )$sup(x,3)$in( - )3$in( )x,2)
  137.  
  138. |$label(0,15,Times New Roman,$(e26$))$sub(legendre_p,3)$paren(x)$hinge()$in( = )$q(5$in( )$sup(x,3)$in( - )3$in( )x,2)
  139.  
  140.  
  141. (c27) for n from 0 thru 3 do
  142.     ldisplay(legendre_q(n,x))$
  143. |$label(0,15,Times New Roman,$(e27$))legendre_q$paren(0$ina($, )$hinge()x)$hinge()$in( = )$q(log$paren($q(x$in( + )1,1$in( - )x)),2)
  144.  
  145. |$label(0,15,Times New Roman,$(e28$))legendre_q$paren(1$ina($, )$hinge()x)$hinge()$in( = )$q(x$in( )log$paren($q(x$in( + )1,1$in( - )x)),2)$hinge()$in( - )1
  146.  
  147. |$label(0,15,Times New Roman,$(e29$))legendre_q$paren(2$ina($, )$hinge()x)$hinge()$in( = )$q($paren(3$in( )$sup(x,2)$in( - )1,$(,$))$in( )log$paren($q(x$in( + )1,1$in( - )x)),4)$hinge()$in( - )$q(3$in( )x,2)
  148.  
  149. |$label(0,15,Times New Roman,$(e30$))legendre_q$paren(3$ina($, )$hinge()x)$hinge()$in( = )$q($paren(5$in( )$sup(x,3)$in( - )3$in( )x,$(,$))$in( )log$paren($q(x$in( + )1,1$in( - )x)),4)$hinge()$in( - )$q(15$in( )$sup(x,2)$in( - )4,6)
  150.  
  151.  
  152. (c31) for n from 0 thru 2 do
  153.     for m from 0 thru n do
  154.     ldisplay(alegendre_p(n,m,x),alegendre_p[n,m](x))$
  155. |$label(0,15,Times New Roman,$(e31$))alegendre_p$paren(0$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )1
  156.  
  157. |$label(0,15,Times New Roman,$(e32$))$sub(alegendre_p,0$ina($, )$hinge()0)$paren(x)$hinge()$in( = )1
  158.  
  159. |$label(0,15,Times New Roman,$(e33$))alegendre_p$paren(1$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )x
  160.  
  161. |$label(0,15,Times New Roman,$(e34$))$sub(alegendre_p,1$ina($, )$hinge()0)$paren(x)$hinge()$in( = )x
  162.  
  163. |$label(0,15,Times New Roman,$(e35$))alegendre_p$paren(1$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )$in( - )$sqrt(1$in( - )$sup(x,2))
  164.  
  165. |$label(0,15,Times New Roman,$(e36$))$sub(alegendre_p,1$ina($, )$hinge()1)$paren(x)$hinge()$in( = )$in( - )$sqrt(1$in( - )$sup(x,2))
  166.  
  167. |$label(0,15,Times New Roman,$(e37$))alegendre_p$paren(2$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(3$in( )$sup(x,2)$in( - )1,2)
  168.  
  169. |$label(0,15,Times New Roman,$(e38$))$sub(alegendre_p,2$ina($, )$hinge()0)$paren(x)$hinge()$in( = )$q(3$in( )$sup(x,2)$in( - )1,2)
  170.  
  171. |$label(0,15,Times New Roman,$(e39$))alegendre_p$paren(2$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )$in( - )3$in( )x$in( )$sqrt(1$in( - )$sup(x,2))
  172.  
  173. |$label(0,15,Times New Roman,$(e40$))$sub(alegendre_p,2$ina($, )$hinge()1)$paren(x)$hinge()$in( = )$in( - )3$in( )x$in( )$sqrt(1$in( - )$sup(x,2))
  174.  
  175. |$label(0,15,Times New Roman,$(e41$))alegendre_p$paren(2$ina($, )$hinge()2$ina($, )$hinge()x)$hinge()$in( = )3$hinge()$in( )$open($()1$hinge()$in( - )$sup(x,2)$close($))
  176.  
  177. |$label(0,15,Times New Roman,$(e42$))$sub(alegendre_p,2$ina($, )$hinge()2)$paren(x)$hinge()$in( = )3$hinge()$in( - )3$in( )$sup(x,2)
  178.  
  179.  
  180. (c43) for n from 0 thru 2 do
  181.     for m from 0 thru n do
  182.     ldisplay(alegendre_q(n,m,x))$
  183. |$label(0,15,Times New Roman,$(e43$))alegendre_q$paren(0$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )1
  184.  
  185. |$label(0,15,Times New Roman,$(e44$))alegendre_q$paren(1$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(x$in( )log$paren($q(x$in( + )1,1$in( - )x)),2)$hinge()$in( - )1
  186.  
  187. |$label(0,15,Times New Roman,$(e45$))alegendre_q$paren(1$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($sup(x,2)$in( )$sqrt(1$in( - )$sup(x,2))$in( )log$paren($in( - )$q(x$in( + )1,x$in( - )1))$in( - )$sqrt(1$in( - )$sup(x,2))$in( )log$paren($in( - )$q(x$in( + )1,x$in( - )1))$in( - )2$in( )x$in( )$sqrt(1$in( - )$sup(x,2)),2$in( )$sup(x,2)$in( - )2)
  188.  
  189. |$label(0,15,Times New Roman,$(e46$))alegendre_q$paren(2$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q($paren(3$in( )$sup(x,2)$in( - )1,$(,$))$in( )log$paren($q(x$in( + )1,1$in( - )x)),4)$hinge()$in( - )$q(3$in( )x,2)
  190.  
  191. |$label(0,15,Times New Roman,$(e47$))alegendre_q$paren(2$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q(3$in( )$sup(x,3)$in( )$sqrt(1$in( - )$sup(x,2))$in( )log$paren($in( - )$q(x$in( + )1,x$in( - )1))$in( - )3$in( )x$in( )$sqrt(1$in( - )$sup(x,2))$in( )log$paren($in( - )$q(x$in( + )1,x$in( - )1))$in( - )6$in( )$sup(x,2)$in( )$sqrt(1$in( - )$sup(x,2))$in( + )4$in( )$sqrt(1$in( - )$sup(x,2)),2$in( )$sup(x,2)$in( - )2)
  192.  
  193. |$label(0,15,Times New Roman,$(e48$))alegendre_q$paren(2$ina($, )$hinge()2$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q(3$in( )$sup(x,4)$in( )log$paren($in( - )$q(x$in( + )1,x$in( - )1))$in( - )6$in( )$sup(x,2)$in( )log$paren($in( - )$q(x$in( + )1,x$in( - )1))$in( + )3$in( )log$paren($in( - )$q(x$in( + )1,x$in( - )1))$in( - )6$in( )$sup(x,3)$in( + )10$in( )x,2$in( )$sup(x,2)$in( - )2)
  194.  
  195.  
  196. (c49) for n from 0 thru 2 do
  197.     for a from 1 thru n do
  198.     ldisplay(gegenbauer_c(n,a,x),gegenbauer_c[n](a,x))$
  199. |$label(0,15,Times New Roman,$(e49$))gegenbauer_c$paren(1$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )2$hinge()$in( )x
  200.  
  201. |$label(0,15,Times New Roman,$(e50$))$sub(gegenbauer_c,1)$paren(1$ina($, )$hinge()x)$hinge()$in( = )2$hinge()$in( )x
  202.  
  203. |$label(0,15,Times New Roman,$(e51$))gegenbauer_c$paren(2$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )4$in( )$sup(x,2)$hinge()$in( - )1
  204.  
  205. |$label(0,15,Times New Roman,$(e52$))$sub(gegenbauer_c,2)$paren(1$ina($, )$hinge()x)$hinge()$in( = )4$in( )$sup(x,2)$hinge()$in( - )1
  206.  
  207. |$label(0,15,Times New Roman,$(e53$))gegenbauer_c$paren(2$ina($, )$hinge()2$ina($, )$hinge()x)$hinge()$in( = )12$in( )$sup(x,2)$hinge()$in( - )2
  208.  
  209. |$label(0,15,Times New Roman,$(e54$))$sub(gegenbauer_c,2)$paren(2$ina($, )$hinge()x)$hinge()$in( = )12$in( )$sup(x,2)$hinge()$in( - )2
  210.  
  211.  
  212. (c55) /* *********************************************
  213.  
  214.      Hermite Polynomials,
  215.      Laguerre Polynomials,
  216.      Associated Laguerre Polynomials
  217. */
  218. for n from 0 thru 3 do
  219.     ldisplay(hermite_h(n,x),hermite_h[n](x))$
  220. |$label(0,15,Times New Roman,$(e55$))hermite_h$paren(0$ina($, )$hinge()x)$hinge()$in( = )1
  221.  
  222. |$label(0,15,Times New Roman,$(e56$))$sub(hermite_h,0)$paren(x)$hinge()$in( = )1
  223.  
  224. |$label(0,15,Times New Roman,$(e57$))hermite_h$paren(1$ina($, )$hinge()x)$hinge()$in( = )2$hinge()$in( )x
  225.  
  226. |$label(0,15,Times New Roman,$(e58$))$sub(hermite_h,1)$paren(x)$hinge()$in( = )2$hinge()$in( )x
  227.  
  228. |$label(0,15,Times New Roman,$(e59$))hermite_h$paren(2$ina($, )$hinge()x)$hinge()$in( = )4$in( )$sup(x,2)$hinge()$in( - )2
  229.  
  230. |$label(0,15,Times New Roman,$(e60$))$sub(hermite_h,2)$paren(x)$hinge()$in( = )4$in( )$sup(x,2)$hinge()$in( - )2
  231.  
  232. |$label(0,15,Times New Roman,$(e61$))hermite_h$paren(3$ina($, )$hinge()x)$hinge()$in( = )8$in( )$sup(x,3)$hinge()$in( - )12$in( )x
  233.  
  234. |$label(0,15,Times New Roman,$(e62$))$sub(hermite_h,3)$paren(x)$hinge()$in( = )8$in( )$sup(x,3)$hinge()$in( - )12$in( )x
  235.  
  236.  
  237. (c63) for n from 0 thru 3 do
  238.     ldisplay(laguerre_l(n,x),laguerre_l[n](x))$
  239. |$label(0,15,Times New Roman,$(e63$))laguerre_l$paren(0$ina($, )$hinge()x)$hinge()$in( = )1
  240.  
  241. |$label(0,15,Times New Roman,$(e64$))$sub(laguerre_l,0)$paren(x)$hinge()$in( = )1
  242.  
  243. |$label(0,15,Times New Roman,$(e65$))laguerre_l$paren(1$ina($, )$hinge()x)$hinge()$in( = )1$hinge()$in( - )x
  244.  
  245. |$label(0,15,Times New Roman,$(e66$))$sub(laguerre_l,1)$paren(x)$hinge()$in( = )1$hinge()$in( - )x
  246.  
  247. |$label(0,15,Times New Roman,$(e67$))laguerre_l$paren(2$ina($, )$hinge()x)$hinge()$in( = )$q($sup(x,2)$in( - )4$in( )x$in( + )2,2)
  248.  
  249. |$label(0,15,Times New Roman,$(e68$))$sub(laguerre_l,2)$paren(x)$hinge()$in( = )$q($sup(x,2)$in( - )4$in( )x$in( + )2,2)
  250.  
  251. |$label(0,15,Times New Roman,$(e69$))laguerre_l$paren(3$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($sup(x,3)$in( - )9$in( )$sup(x,2)$in( + )18$in( )x$in( - )6,6)
  252.  
  253. |$label(0,15,Times New Roman,$(e70$))$sub(laguerre_l,3)$paren(x)$hinge()$in( = )$in( - )$q($sup(x,3)$in( - )9$in( )$sup(x,2)$in( + )18$in( )x$in( - )6,6)
  254.  
  255.  
  256. (c71) for n from 0 thru 2 do
  257.     for a from 0 thru n do
  258.     ldisplay(alaguerre_l(n,a,x),alaguerre_l[n](a,x))$
  259. |$label(0,15,Times New Roman,$(e71$))alaguerre_l$paren(0$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )1
  260.  
  261. |$label(0,15,Times New Roman,$(e72$))$sub(alaguerre_l,0)$paren(0$ina($, )$hinge()x)$hinge()$in( = )1
  262.  
  263. |$label(0,15,Times New Roman,$(e73$))alaguerre_l$paren(1$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )1$hinge()$in( - )x
  264.  
  265. |$label(0,15,Times New Roman,$(e74$))$sub(alaguerre_l,1)$paren(0$ina($, )$hinge()x)$hinge()$in( = )1$hinge()$in( - )x
  266.  
  267. |$label(0,15,Times New Roman,$(e75$))alaguerre_l$paren(1$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )2$hinge()$in( - )x
  268.  
  269. |$label(0,15,Times New Roman,$(e76$))$sub(alaguerre_l,1)$paren(1$ina($, )$hinge()x)$hinge()$in( = )2$hinge()$in( - )x
  270.  
  271. |$label(0,15,Times New Roman,$(e77$))alaguerre_l$paren(2$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q($sup(x,2)$in( - )4$in( )x$in( + )2,2)
  272.  
  273. |$label(0,15,Times New Roman,$(e78$))$sub(alaguerre_l,2)$paren(0$ina($, )$hinge()x)$hinge()$in( = )$q($sup(x,2)$in( - )4$in( )x$in( + )2,2)
  274.  
  275. |$label(0,15,Times New Roman,$(e79$))alaguerre_l$paren(2$ina($, )$hinge()1$ina($, )$hinge()x)$hinge()$in( = )$q($sup(x,2)$in( - )6$in( )x$in( + )6,2)
  276.  
  277. |$label(0,15,Times New Roman,$(e80$))$sub(alaguerre_l,2)$paren(1$ina($, )$hinge()x)$hinge()$in( = )$q($sup(x,2)$in( - )6$in( )x$in( + )6,2)
  278.  
  279. |$label(0,15,Times New Roman,$(e81$))alaguerre_l$paren(2$ina($, )$hinge()2$ina($, )$hinge()x)$hinge()$in( = )$q($sup(x,2)$in( - )8$in( )x$in( + )12,2)
  280.  
  281. |$label(0,15,Times New Roman,$(e82$))$sub(alaguerre_l,2)$paren(2$ina($, )$hinge()x)$hinge()$in( = )$q($sup(x,2)$in( - )8$in( )x$in( + )12,2)
  282.  
  283.  
  284. (c83) alaguerre_l(2,a,x);
  285. |$label(-1,15,Times New Roman,)Is  $in() $in()a$in( + )1$in() $in()  positive$, negative$, or zero?
  286. P;
  287.  
  288. |$label(0,15,Times New Roman,$(d83$))$q($sup(x,2)$in( + )$paren($in( - )2$in( )a$in( - )4,$(,$))$in( )x$in( + )$sup(a,2)$in( + )3$in( )a$in( + )2,2)
  289.  
  290. (c84) alaguerre_l(3,1/2,x);
  291. |$label(0,15,Times New Roman,$(d84$))$in( - )$q(8$in( )$sup(x,3)$in( - )84$in( )$sup(x,2)$in( + )210$in( )x$in( - )105,48)
  292.  
  293. (c85) /* *********************************************
  294.  
  295.      Chebyshev Polynomials t,
  296.      Chebyshev Polynomials u
  297. */
  298. for n from 0 thru 3 do
  299.     ldisplay(chebyshev_t(n,x),chebyshev_t[n](x))$
  300. |$label(0,15,Times New Roman,$(e85$))chebyshev_t$paren(0$ina($, )$hinge()x)$hinge()$in( = )1
  301.  
  302. |$label(0,15,Times New Roman,$(e86$))$sub(chebyshev_t,0)$paren(x)$hinge()$in( = )1
  303.  
  304. |$label(0,15,Times New Roman,$(e87$))chebyshev_t$paren(1$ina($, )$hinge()x)$hinge()$in( = )x
  305.  
  306. |$label(0,15,Times New Roman,$(e88$))$sub(chebyshev_t,1)$paren(x)$hinge()$in( = )x
  307.  
  308. |$label(0,15,Times New Roman,$(e89$))chebyshev_t$paren(2$ina($, )$hinge()x)$hinge()$in( = )2$in( )$sup(x,2)$hinge()$in( - )1
  309.  
  310. |$label(0,15,Times New Roman,$(e90$))$sub(chebyshev_t,2)$paren(x)$hinge()$in( = )2$in( )$sup(x,2)$hinge()$in( - )1
  311.  
  312. |$label(0,15,Times New Roman,$(e91$))chebyshev_t$paren(3$ina($, )$hinge()x)$hinge()$in( = )4$in( )$sup(x,3)$hinge()$in( - )3$in( )x
  313.  
  314. |$label(0,15,Times New Roman,$(e92$))$sub(chebyshev_t,3)$paren(x)$hinge()$in( = )4$in( )$sup(x,3)$hinge()$in( - )3$in( )x
  315.  
  316.  
  317. (c93) for n from 0 thru 3 do
  318.     ldisplay(chebyshev_u(n,x),chebyshev_u[n](x))$
  319. |$label(0,15,Times New Roman,$(e93$))chebyshev_u$paren(0$ina($, )$hinge()x)$hinge()$in( = )1
  320.  
  321. |$label(0,15,Times New Roman,$(e94$))$sub(chebyshev_u,0)$paren(x)$hinge()$in( = )1
  322.  
  323. |$label(0,15,Times New Roman,$(e95$))chebyshev_u$paren(1$ina($, )$hinge()x)$hinge()$in( = )2$hinge()$in( )x
  324.  
  325. |$label(0,15,Times New Roman,$(e96$))$sub(chebyshev_u,1)$paren(x)$hinge()$in( = )2$hinge()$in( )x
  326.  
  327. |$label(0,15,Times New Roman,$(e97$))chebyshev_u$paren(2$ina($, )$hinge()x)$hinge()$in( = )4$in( )$sup(x,2)$hinge()$in( - )1
  328.  
  329. |$label(0,15,Times New Roman,$(e98$))$sub(chebyshev_u,2)$paren(x)$hinge()$in( = )4$in( )$sup(x,2)$hinge()$in( - )1
  330.  
  331. |$label(0,15,Times New Roman,$(e99$))chebyshev_u$paren(3$ina($, )$hinge()x)$hinge()$in( = )8$in( )$sup(x,3)$hinge()$in( - )4$in( )x
  332.  
  333. |$label(0,15,Times New Roman,$(e100$))$sub(chebyshev_u,3)$paren(x)$hinge()$in( = )8$in( )$sup(x,3)$hinge()$in( - )4$in( )x
  334.  
  335.  
  336. (c101) /* *********************************************
  337.  
  338.      Jacobi Polynomials
  339. */
  340. for n from 1 thru 2 do
  341.     for a from 1 thru n do
  342.     ldisplay(jacobi_p(n,a,0,x),jacobi_p[n](a,0,x))$
  343. |$label(0,15,Times New Roman,$(e101$))jacobi_p$paren(1$ina($, )$hinge()1$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(3$in( )x$in( + )1,2)
  344.  
  345. |$label(0,15,Times New Roman,$(e102$))$sub(jacobi_p,1)$paren(1$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(3$in( )x$in( + )1,2)
  346.  
  347. |$label(0,15,Times New Roman,$(e103$))jacobi_p$paren(2$ina($, )$hinge()1$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(5$in( )$sup(x,2)$in( + )2$in( )x$in( - )1,2)
  348.  
  349. C:\MACSD2B\library1\combin.fas being loaded.
  350. |$label(0,15,Times New Roman,$(e104$))$sub(jacobi_p,2)$paren(1$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(20$in( )$sup(x,2)$in( + )8$in( )x$in( - )4,8)
  351.  
  352. |$label(0,15,Times New Roman,$(e105$))jacobi_p$paren(2$ina($, )$hinge()2$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(15$in( )$sup(x,2)$in( + )10$in( )x$in( - )1,4)
  353.  
  354. |$label(0,15,Times New Roman,$(e106$))$sub(jacobi_p,2)$paren(2$ina($, )$hinge()0$ina($, )$hinge()x)$hinge()$in( = )$q(30$in( )$sup(x,2)$in( + )20$in( )x$in( - )2,8)
  355.  
  356.  
  357. (c107) jacobi_p(0,a,b,x);
  358. |$label(0,15,Times New Roman,$(d107$))1
  359.  
  360. (c108) jacobi_p(1,a,b,x);
  361. |$label(0,15,Times New Roman,$(d108$))$q($paren(b$in( + )a$in( + )2,$(,$))$in( )x$in( - )b$in( + )a,2)
  362.  
  363. (c109) jacobi_p(2,a,b,x);
  364. |$label(0,15,Times New Roman,$(d109$))$q($paren($sup(b,2)$in( + )$paren(2$in( )a$in( + )7,$(,$))$in( )b$in( + )$sup(a,2)$in( + )7$in( )a$in( + )12,$(,$))$in( )$sup(x,2)$in( + )$paren($in( - )2$in( )$sup(b,2)$in( - )6$in( )b$in( + )2$in( )$sup(a,2)$in( + )6$in( )a,$(,$))$in( )x$in( + )$sup(b,2)$in( + )$paren($in( - )2$in( )a$in( - )1,$(,$))$in( )b$in( + )$sup(a,2)$in( - )a$in( - )4,8)
  365.  
  366. (c110) /* *********************************************
  367.  
  368.      Spherical Harmonics
  369. */
  370. for n from 0 thru 2 do
  371.   for m from 0 thru n do
  372.     ldisplay(sharmonic_y(n,m,theta,phi),sharmonic_y[n,m](theta,phi))$
  373. C:\MACSD2B\share\trigsimp.fas being loaded.
  374. |$label(0,15,Times New Roman,$(e110$))sharmonic_y$paren(0$ina($, )$hinge()0$ina($, )$hinge()$greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q(1,2$in( )$sqrt($greektext(p)))
  375.  
  376. |$label(0,15,Times New Roman,$(e111$))$sub(sharmonic_y,0$ina($, )$hinge()0)$paren($greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q(1,2$in( )$sqrt($greektext(p)))
  377.  
  378. |$label(0,15,Times New Roman,$(e112$))sharmonic_y$paren(1$ina($, )$hinge()0$ina($, )$hinge()$greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q($sqrt(3)$in( )cos$paren($greektext(q)),2$in( )$sqrt($greektext(p)))
  379.  
  380. |$label(0,15,Times New Roman,$(e113$))$sub(sharmonic_y,1$ina($, )$hinge()0)$paren($greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q($sqrt(3)$in( )cos$paren($greektext(q)),2$in( )$sqrt($greektext(p)))
  381.  
  382. |$label(0,15,Times New Roman,$(e114$))sharmonic_y$paren(1$ina($, )$hinge()1$ina($, )$hinge()$greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$in( - )$q($sqrt(2)$in( )$sqrt(3)$in( )$sup($e(),$italictext(i)$in( )$greektext(f))$in( )sin$paren($greektext(q)),4$in( )$sqrt($greektext(p)))
  383.  
  384. |$label(0,15,Times New Roman,$(e115$))$sub(sharmonic_y,1$ina($, )$hinge()1)$paren($greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$in( - )$q($sqrt(2)$in( )$sqrt(3)$in( )$sup($e(),$italictext(i)$in( )$greektext(f))$in( )sin$paren($greektext(q)),4$in( )$sqrt($greektext(p)))
  385.  
  386. |$label(0,15,Times New Roman,$(e116$))sharmonic_y$paren(2$ina($, )$hinge()0$ina($, )$hinge()$greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q($sqrt(5)$in( )$paren(3$in( )$sup(cos,2)$paren($greektext(q))$in( - )1,$(,$)),4$in( )$sqrt($greektext(p)))
  387.  
  388. |$label(0,15,Times New Roman,$(e117$))$sub(sharmonic_y,2$ina($, )$hinge()0)$paren($greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q($sqrt(5)$in( )$paren(3$in( )$sup(cos,2)$paren($greektext(q))$in( - )1,$(,$)),4$in( )$sqrt($greektext(p)))
  389.  
  390. |$label(0,15,Times New Roman,$(e118$))sharmonic_y$paren(2$ina($, )$hinge()1$ina($, )$hinge()$greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$in( - )$q($sqrt(5)$in( )$sqrt(6)$in( )$sup($e(),$italictext(i)$in( )$greektext(f))$in( )cos$paren($greektext(q))$in( )sin$paren($greektext(q)),4$in( )$sqrt($greektext(p)))
  391.  
  392. |$label(0,15,Times New Roman,$(e119$))$sub(sharmonic_y,2$ina($, )$hinge()1)$paren($greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$in( - )$q($sqrt(5)$in( )$sqrt(6)$in( )$sup($e(),$italictext(i)$in( )$greektext(f))$in( )cos$paren($greektext(q))$in( )sin$paren($greektext(q)),4$in( )$sqrt($greektext(p)))
  393.  
  394. |$label(0,15,Times New Roman,$(e120$))sharmonic_y$paren(2$ina($, )$hinge()2$ina($, )$hinge()$greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q($sqrt(5)$in( )$sqrt(6)$in( )$sup($e(),2$in( )$italictext(i)$in( )$greektext(f))$in( )$sup(sin,2)$paren($greektext(q)),8$in( )$sqrt($greektext(p)))
  395.  
  396. |$label(0,15,Times New Roman,$(e121$))$sub(sharmonic_y,2$ina($, )$hinge()2)$paren($greektext(q)$ina($, )$hinge()$greektext(f))$hinge()$in( = )$q($sqrt(5)$in( )$sqrt(6)$in( )$sup($e(),2$in( )$italictext(i)$in( )$greektext(f))$in( )$sup(sin,2)$paren($greektext(q)),8$in( )$sqrt($greektext(p)))
  397.  
  398.  
  399. (c122) /***********************************************
  400.  
  401.      Spherical Bessel, Neumann, Hankel Functions
  402. */
  403. for n from 0 thru 3 do ldisplay(sbessel_j(n,x),sbessel_j[n](x))$
  404. |$label(0,15,Times New Roman,$(e122$))sbessel_j$paren(0$ina($, )$hinge()x)$hinge()$in( = )$q(sin$paren(x),x)
  405.  
  406. |$label(0,15,Times New Roman,$(e123$))$sub(sbessel_j,0)$paren(x)$hinge()$in( = )$q(sin$paren(x),x)
  407.  
  408. |$label(0,15,Times New Roman,$(e124$))sbessel_j$paren(1$ina($, )$hinge()x)$hinge()$in( = )$q(sin$paren(x),$sup(x,2))$hinge()$in( - )$q(cos$paren(x),x)
  409.  
  410. |$label(0,15,Times New Roman,$(e125$))$sub(sbessel_j,1)$paren(x)$hinge()$in( = )$q(sin$paren(x),$sup(x,2))$hinge()$in( - )$q(cos$paren(x),x)
  411.  
  412. |$label(0,15,Times New Roman,$(e126$))sbessel_j$paren(2$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($paren($sup(x,2)$in( - )3,$(,$))$in( )sin$paren(x),$sup(x,3))$hinge()$in( - )$q(3$in( )cos$paren(x),$sup(x,2))
  413.  
  414. |$label(0,15,Times New Roman,$(e127$))$sub(sbessel_j,2)$paren(x)$hinge()$in( = )$in( - )$q(sin$paren(x),x)$hinge()$in( + )$q(3$in( )sin$paren(x),$sup(x,3))$hinge()$in( - )$q(3$in( )cos$paren(x),$sup(x,2))
  415.  
  416. |$label(0,15,Times New Roman,$(e128$))sbessel_j$paren(3$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($paren(6$in( )$sup(x,2)$in( - )15,$(,$))$in( )sin$paren(x),$sup(x,4))$hinge()$in( - )$q($paren(15$in( )x$in( - )$sup(x,3),$(,$))$in( )cos$paren(x),$sup(x,4))
  417.  
  418. |$label(0,15,Times New Roman,$(e129$))$sub(sbessel_j,3)$paren(x)$hinge()$in( = )$in( - )$q(6$in( )sin$paren(x),$sup(x,2))$hinge()$in( + )$q(15$in( )sin$paren(x),$sup(x,4))$hinge()$in( + )$q(cos$paren(x),x)$hinge()$in( - )$q(15$in( )cos$paren(x),$sup(x,3))
  419.  
  420.  
  421. (c130) for n from 0 thru 3 do ldisplay(sneumann_n(n,x),sneumann_n[n](x))$
  422. |$label(0,15,Times New Roman,$(e130$))sneumann_n$paren(0$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q(cos$paren(x),x)
  423.  
  424. |$label(0,15,Times New Roman,$(e131$))$sub(sneumann_n,0)$paren(x)$hinge()$in( = )$in( - )$q(cos$paren(x),x)
  425.  
  426. |$label(0,15,Times New Roman,$(e132$))sneumann_n$paren(1$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q(sin$paren(x),x)$hinge()$in( - )$q(cos$paren(x),$sup(x,2))
  427.  
  428. |$label(0,15,Times New Roman,$(e133$))$sub(sneumann_n,1)$paren(x)$hinge()$in( = )$in( - )$q(sin$paren(x),x)$hinge()$in( - )$q(cos$paren(x),$sup(x,2))
  429.  
  430. |$label(0,15,Times New Roman,$(e134$))sneumann_n$paren(2$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q(3$in( )sin$paren(x),$sup(x,2))$hinge()$in( - )$q($paren(3$in( - )$sup(x,2),$(,$))$in( )cos$paren(x),$sup(x,3))
  431.  
  432. |$label(0,15,Times New Roman,$(e135$))$sub(sneumann_n,2)$paren(x)$hinge()$in( = )$in( - )$q(3$in( )sin$paren(x),$sup(x,2))$hinge()$in( + )$q(cos$paren(x),x)$hinge()$in( - )$q(3$in( )cos$paren(x),$sup(x,3))
  433.  
  434. |$label(0,15,Times New Roman,$(e136$))sneumann_n$paren(3$ina($, )$hinge()x)$hinge()$in( = )$q($paren($sup(x,3)$in( - )15$in( )x,$(,$))$in( )sin$paren(x),$sup(x,4))$hinge()$in( + )$q($paren(6$in( )$sup(x,2)$in( - )15,$(,$))$in( )cos$paren(x),$sup(x,4))
  435.  
  436. |$label(0,15,Times New Roman,$(e137$))$sub(sneumann_n,3)$paren(x)$hinge()$in( = )$q(sin$paren(x),x)$hinge()$in( - )$q(15$in( )sin$paren(x),$sup(x,3))$hinge()$in( + )$q(6$in( )cos$paren(x),$sup(x,2))$hinge()$in( - )$q(15$in( )cos$paren(x),$sup(x,4))
  437.  
  438.  
  439. (c138) for n from 0 thru 3 do ldisplay(shankel_h1(n,x),shankel_h1[n](x))$
  440. |$label(0,15,Times New Roman,$(e138$))shankel_h1$paren(0$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($italictext(i)$in( )$sup($e(),$italictext(i)$in( )x),x)
  441.  
  442. |$label(0,15,Times New Roman,$(e139$))$sub(shankel_h1,0)$paren(x)$hinge()$in( = )$in( - )$q($italictext(i)$in( )$sup($e(),$italictext(i)$in( )x),x)
  443.  
  444. |$label(0,15,Times New Roman,$(e140$))shankel_h1$paren(1$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($paren(x$in( + )$italictext(i),$(,$))$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,2))
  445.  
  446. |$label(0,15,Times New Roman,$(e141$))$sub(shankel_h1,1)$paren(x)$hinge()$in( = )$in( - )$q($paren(x$in( + )$italictext(i),$(,$))$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,2))
  447.  
  448. |$label(0,15,Times New Roman,$(e142$))shankel_h1$paren(2$ina($, )$hinge()x)$hinge()$in( = )$q($paren($italictext(i)$in( )$sup(x,2)$in( - )3$in( )x$in( - )3$in( )$italictext(i),$(,$))$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,3))
  449.  
  450. |$label(0,15,Times New Roman,$(e143$))$sub(shankel_h1,2)$paren(x)$hinge()$in( = )$q($italictext(i)$in( )$sup($e(),$italictext(i)$in( )x),x)$hinge()$in( - )$q(3$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,2))$hinge()$in( - )$q(3$in( )$italictext(i)$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,3))
  451.  
  452. |$label(0,15,Times New Roman,$(e144$))shankel_h1$paren(3$ina($, )$hinge()x)$hinge()$in( = )$q($paren($sup(x,3)$in( + )6$in( )$italictext(i)$in( )$sup(x,2)$in( - )15$in( )x$in( - )15$in( )$italictext(i),$(,$))$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,4))
  453.  
  454. |$label(0,15,Times New Roman,$(e145$))$sub(shankel_h1,3)$paren(x)$hinge()$in( = )$q($sup($e(),$italictext(i)$in( )x),x)$hinge()$in( + )$q(6$in( )$italictext(i)$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,2))$hinge()$in( - )$q(15$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,3))$hinge()$in( - )$q(15$in( )$italictext(i)$in( )$sup($e(),$italictext(i)$in( )x),$sup(x,4))
  455.  
  456.  
  457. (c146) for n from 0 thru 3 do ldisplay(shankel_h2(n,x),shankel_h2[n](x))$
  458. |$label(0,15,Times New Roman,$(e146$))shankel_h2$paren(0$ina($, )$hinge()x)$hinge()$in( = )$q($italictext(i)$in( )$sup($e(),$in( - )$italictext(i)$in( )x),x)
  459.  
  460. |$label(0,15,Times New Roman,$(e147$))$sub(shankel_h2,0)$paren(x)$hinge()$in( = )$q($italictext(i)$in( )$sup($e(),$in( - )$italictext(i)$in( )x),x)
  461.  
  462. |$label(0,15,Times New Roman,$(e148$))shankel_h2$paren(1$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($paren(x$in( - )$italictext(i),$(,$))$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,2))
  463.  
  464. |$label(0,15,Times New Roman,$(e149$))$sub(shankel_h2,1)$paren(x)$hinge()$in( = )$in( - )$q($paren(x$in( - )$italictext(i),$(,$))$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,2))
  465.  
  466. |$label(0,15,Times New Roman,$(e150$))shankel_h2$paren(2$ina($, )$hinge()x)$hinge()$in( = )$in( - )$q($paren($italictext(i)$in( )$sup(x,2)$in( + )3$in( )x$in( - )3$in( )$italictext(i),$(,$))$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,3))
  467.  
  468. |$label(0,15,Times New Roman,$(e151$))$sub(shankel_h2,2)$paren(x)$hinge()$in( = )$in( - )$q($italictext(i)$in( )$sup($e(),$in( - )$italictext(i)$in( )x),x)$hinge()$in( - )$q(3$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,2))$hinge()$in( + )$q(3$in( )$italictext(i)$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,3))
  469.  
  470. |$label(0,15,Times New Roman,$(e152$))shankel_h2$paren(3$ina($, )$hinge()x)$hinge()$in( = )$q($paren($sup(x,3)$in( - )6$in( )$italictext(i)$in( )$sup(x,2)$in( - )15$in( )x$in( + )15$in( )$italictext(i),$(,$))$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,4))
  471.  
  472. |$label(0,15,Times New Roman,$(e153$))$sub(shankel_h2,3)$paren(x)$hinge()$in( = )$q($sup($e(),$in( - )$italictext(i)$in( )x),x)$hinge()$in( - )$q(6$in( )$italictext(i)$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,2))$hinge()$in( - )$q(15$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,3))$hinge()$in( + )$q(15$in( )$italictext(i)$in( )$sup($e(),$in( - )$italictext(i)$in( )x),$sup(x,4))
  473.  
  474.  
  475. (c154) /* *********************************************
  476.  
  477.      The function POLY_REVERT can express an arbitrary polynomial
  478.      in terms of a list of shape function polynomials.
  479. */
  480. test_poly : a * x^5 + b * x^2 $
  481.  
  482. (c155) shapes : makelist( chebyshev_t[n](x) ,n ,0 ,6 ) $
  483.  
  484. (c156) coefficients:poly_revert(test_poly,x,shapes);
  485. |$label(0,15,Times New Roman,$(d156$))$open([)$q(b,2)$ina($, )$hinge()$q(5$in( )a,8)$ina($, )$hinge()$q(b,2)$ina($, )$hinge()$q(5$in( )a,16)$ina($, )$hinge()0$ina($, )$hinge()$q(a,16)$ina($, )$hinge()0$close(])
  486.  
  487. (c157) /* Verify the result
  488. */
  489. ratsimp(apply("+",coefficients*shapes));
  490. |$label(0,15,Times New Roman,$(d157$))a$in( )$sup(x,5)$hinge()$in( + )b$in( )$sup(x,2)
  491.  
  492. (c158) /* Clean up */
  493. (remfunction(%p),remvalue(test_poly,shapes,coefficients))$
  494.